<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS样式基本知识</title>
    <!--外部式CSS-->
    <link href="style.css" rel="stylesheet" type="text/css">
    <!--嵌入式CSS-->
    <style type="text/css">
        p{
            font-size: 30px;
            color: red;
            font-weight: 200;
        }
        .stress{
            color:red;
        }
        #idPs{
            color:green;
        }

        .food>li{border:1px solid red;}/*添加边框样式（粗细为1px， 颜色为红色的实线）*/
    </style>
</head>
<body>
    <p style="color: aquamarine">慕课网，超酷的互联网、IT技术免费学习平台，创新的网络一站式学习、实践体验；服务及时贴心，内容专业、有趣易学。专注服务互联网工程师快速成为技术高手！</p>
    <h1 class="stress">CSS由 类选择器控制</h1>
    <h1 id="idPs">CSS由 ID选择器控制</h1>

    <ul class="food">
        <li>水果
            <ul>
                <li>香蕉</li>
                <li>苹果</li>
                <li>梨</li>
            </ul>
        </li>
        <li>蔬菜
            <ul>
                <li>白菜</li>
                <li>油菜</li>
                <li>卷心菜</li>
            </ul>
        </li>
    </ul>
</body>
</html>

<!--认识CSS样式-->
<!--CSS全称为“层叠样式表 (Cascading Style Sheets)”，它主要是用于定义HTML内容在浏览器内的显示样式，如文字大小、颜色、字体加粗等。-->
<!--如下列代码：-->
<!--p{-->
<!--font-size:12px;-->
<!--color:red;-->
<!--font-weight:bold;-->
<!--}-->
<!--使用CSS样式的一个好处是通过定义某个样式，可以让不同网页位置的文字有着统一的字体、字号或者颜色等。-->

<!--CSS样式的优势-->
<!--为什么使用css样式来设置网页的外观样式呢？右边编辑器是一段文字，我们想把“超酷的互联网”、“服务及时贴心”、“有趣易学”这三个短语的文本颜色设置为红色，这时就 可以通过设置样式来设置，而且只需要编写一条css样式语句。-->
<!--第一步：把这三个短语用<span></span>括起来。（见右边代码编辑器13行）-->
<!--第二步：写入下列代码：（见右边代码编辑器7-8行）-->
<!--span{-->
    <!--color:red;-->
<!--}-->
<!--观察结果窗口文字的颜色是否变为红色了。-->

<!--CSS代码语法-->
<!--css 样式由选择符和声明组成，而声明又由属性和值组成，如下图所示：-->
<!--选择符：又称选择器，指明网页中要应用样式规则的元素，如本例中是网页中所有的段（p）的文字将变成蓝色，而其他的元素（如ol）不会受到影响。-->
<!--声明：在英文大括号“｛｝”中的的就是声明，属性和值之间用英文冒号“：”分隔。当有多条声明时，中间可以英文分号“;”分隔，如下所示：-->
<!--p{font-size:12px;color:red;}-->
<!--注意：-->
<!--1、最后一条声明可以没有分号，但是为了以后修改方便，一般也加上分号。-->
<!--2、为了使用样式更加容易阅读，可以将每条代码写在一个新行内，如下所示：-->
<!--p{-->
<!--font-size:12px;-->
<!--color:red;-->
<!--}-->

<!--CSS注释代码-->
<!--就像在Html的注释一样，在CSS中也有注释语句：用/*注释语句*/来标明（Html中使用&lt;!&ndash;注释语句&ndash;&gt;)。-->

<!--内联式css样式，直接写在现有的HTML标签中-->
<!--CSS样式可以写在哪些地方呢？从CSS 样式代码插入的形式来看基本可以分为以下3种：内联式、嵌入式和外部式三种。这一小节先来讲解内联式。-->
<!--内联式css样式表就是把css代码直接写在现有的HTML标签中，如下面代码：-->
<!--<p style="color:red">这里文字是红色。</p>-->
<!--注意要写在元素的开始标签里，下面这种写法是错误的：-->
<!--<p>这里文字是红色。</p style="color:red">-->
<!--并且css样式代码要写在style=""双引号中，如果有多条css样式代码设置可以写在一起，中间用分号隔开。如下代码：-->
<!--<p style="color:red;font-size:12px">这里文字是红色。</p>-->
<!--任务-->
<!--我来试一试：使用内联式css样式为"超酷的互联网"这几个字设置字体颜色为蓝色-->
<!--在右边编辑器中13行中的第一个span标签中写入代码：-->
<!--style="color:blue"-->

<!--嵌入式css样式，写在当前的文件中-->
<!--现在有一任务，把右侧编辑器中的“超酷的互联网”、“服务及时贴心”、“有趣易学”这三个短词文字字号修改为18px。如果用上节课我们学习的内联式css样式的方法进行设置将是一件很头疼的事情（为每一个<span>标签加入sytle="font-size:18px"语句），本小节讲解一种新的方法嵌入式css样式来实现这个任务。-->
<!--嵌入式css样式，就是可以把css样式代码写在<style type="text/css"></style>标签之间。如下面代码实现把三个<span>标签中的文字设置为红色：-->
<!--<style type="text/css">-->
<!--span{-->
    <!--color:red;-->
<!--}-->
<!--</style>-->
<!--嵌入式css样式必须写在<style></style>之间，并且一般情况下嵌入式css样式写在<head></head>之间。如右边编辑器中的代码。-->

<!--外部式css样式，写在单独的一个文件中-->
<!--外部式css样式(也可称为外联式)就是把css代码写一个单独的外部文件中，这个css样式文件以“.css”为扩展名，在<head>内（不是在<style>标签内）使用<link>标签将css样式文件链接到HTML文件内，如下面代码：-->
<!--<link href="base.css" rel="stylesheet" type="text/css" />-->
<!--注意：-->
<!--1、css样式文件名称以有意义的英文字母命名，如 main.css。-->
<!--2、rel="stylesheet" type="text/css" 是固定写法不可修改。-->
<!--3、<link>标签位置一般写在<head>标签之内。-->

<!--三种方法的优先级-->
<!--有的小伙伴问了，如果有一种情况：对于同一个元素我们同时用了三种方法设置css样式，那么哪种方法真正有效呢？在右边编辑器就出现了这种情况-->
<!--1、使用内联式CSS设置“超酷的互联网”文字为粉色。-->
<!--2、然后使用嵌入式CSS来设置文字为红色。-->
<!--3、最后又使用外部式设置文字为蓝色（style.css文件中设置）。-->
<!--但最终你可以观察到“超酷的互联网”这个短词的文本被设置为了粉色。因为这三种样式是有优先级的，记住他们的优先级：内联式 > 嵌入式 > 外部式-->
<!--但是嵌入式>外部式有一个前提：嵌入式css样式的位置一定在外部式的后面。如右代码编辑器就是这样，<link href="style.css" ...>代码在<style type="text/css">...</style>代码的前面（实际开发中也是这么写的）。感兴趣的小伙伴可以试一下，把它们调换顺序，再看他们的优先级是否变化。-->
<!--其实总结来说，就是&#45;&#45;就近原则（离被设置元素越近优先级别越高）。-->
<!--但注意上面所总结的优先级是有一个前提：内联式、嵌入式、外部式样式表中css样式是在的相同权值的情况下，什么是权值呢？在后面的9-2小节中会讲解到。-->


<!--什么是选择器？-->
<!--每一条css样式声明（定义）由两部分组成，形式如下：-->
<!--选择器{-->
<!--样式;-->
<!--}-->
<!--在{}之前的部分就是“选择器”，“选择器”指明了{}中的“样式”的作用对象，也就是“样式”作用于网页中的哪些元素。比如HTML文件中的“body”就是选择器。-->

<!--标签选择器-->
<!--标签选择器其实就是html代码中的标签。如右侧代码编辑器中的<html>、<body>、<h1>、<p>、<img>。例如下面代码：-->
<!--p{font-size:12px;line-height:1.6em;}-->
<!--上面的css样式代码的作用：为p标签设置12px字号，行间距设置1.6em的样式。-->

<!--类选择器-->
<!--类选择器在css样式编码中是最常用到的，如右侧代码编辑器中的代码:可以实现为“胆小如鼠”、“勇气”字体设置为红色。-->
<!--语法：-->
<!--.类选器名称{css样式代码;}-->
<!--注意：-->
<!--1、英文圆点开头-->
<!--2、其中类选器名称可以任意起名（但不要起中文噢）-->
<!--使用方法：-->
<!--第一步：使用合适的标签把要修饰的内容标记起来，如下：-->
<!--<span>胆小如鼠</span>-->
<!--第二步：使用class="类选择器名称"为标签设置一个类，如下：-->
<!--<span class="stress">胆小如鼠</span>-->
<!--第三步：设置类选器css样式，如下：-->
<!--.stress{color:red;}/*类前面要加入一个英文圆点*/-->

<!--ID选择器-->
<!--在很多方面，ID选择器都类似于类选择符，但也有一些重要的区别：-->
<!--1、为标签设置id="ID名称"，而不是class="类名称"。-->
<!--2、ID选择符的前面是井号（#）号，而不是英文圆点（.）。-->
<!--右侧代码编辑器中就是一个ID选择符的完整实例。-->

<!--类和ID选择器的区别-->
<!--学习了类选择器和ID选择器，我们会发现他们之间有很多的相似处，是不是两者可以通用呢？我们不要着急先来总结一下他们的相同点和不同点：-->
<!--相同点：可以应用于任何元素-->
<!--不同点：-->
<!--1、ID选择器只能在文档中使用一次。与类选择器不同，在一个HTML文档中，ID选择器只能使用一次，而且仅一次。而类选择器可以使用多次。-->
<!--下面代码是正确的：-->
<!--<p>三年级时，我还是一个<span class="stress">胆小如鼠</span>的小女孩，上课从来不敢回答老师提出的问题，生怕回答错了老师会批评我。就一直没有这个<span class="stress">勇气</span>来回答老师提出的问题。</p>-->
<!--而下面代码是错误的：-->
<!--<p>三年级时，我还是一个<span id="stress">胆小如鼠</span>的小女孩，上课从来不敢回答老师提出的问题，生怕回答错了老师会批评我。就一直没有这个<span id="stress">勇气</span>来回答老师提出的问题。</p>-->
<!--2、可以使用类选择器词列表方法为一个元素同时设置多个样式。我们可以为一个元素同时设多个样式，但只可以用类选择器的方法实现，ID选择器是不可以的（不能使用 ID 词列表）。-->
<!--下面的代码是正确的(完整代码见右侧代码编辑器)-->
<!--.stress{-->
<!--color:red;-->
<!--}-->
<!--.bigsize{-->
<!--font-size:25px;-->
<!--}-->
<!--<p>到了<span class="stress bigsize">三年级</span>下学期时，我们班上了一节公开课...</p>-->
<!--上面代码的作用是为“三年级”三个文字设置文本颜色为红色并且字号为25px。-->
<!--下面的代码是不正确的(完整代码见右侧代码编辑器)-->
<!--#stressid{-->
<!--color:red;-->
<!--}-->
<!--#bigsizeid{-->
<!--font-size:25px;-->
<!--}-->
<!--<p>到了<span id="stressid bigsizeid">三年级</span>下学期时，我们班上了一节公开课...</p>-->
<!--上面代码不可以实现为“三年级”三个文字设置文本颜色为红色并且字号为25px的作用。-->

<!--子选择器-->
<!--还有一个比较有用的选择器子选择器，即大于符号(>),用于选择指定标签元素的第一代子元素。如右侧代码编辑器中的代码：-->
<!--.food>li{border:1px solid red;}-->
<!--这行代码会使class名为food下的子元素li（水果、蔬菜）加入红色实线边框。-->

<!--包含(后代)选择器-->
<!--包含选择器，即加入空格,用于选择指定标签元素下的后辈元素。如右侧代码编辑器中的代码：-->
<!--.first  span{color:red;}-->
<!--这行代码会使第一段文字内容中的“胆小如鼠”字体颜色变为红色。-->
<!--请注意这个选择器与子选择器的区别，子选择器（child selector）仅是指它的直接后代，或者你可以理解为作用于子元素的第一代后代。而后代选择器是作用于所有子后代元素。后代选择器通过空格来进行选择，而子选择器是通过“>”进行选择。-->
<!--总结：>作用于元素的第一代后代，空格作用于元素的所有后代。-->

<!--通用选择器-->
<!--通用选择器是功能最强大的选择器，它使用一个（*）号指定，它的作用是匹配html中所有标签元素-->

<!--伪类选择符-->
<!--更有趣的是伪类选择符，为什么叫做伪类选择符，它允许给html不存在的标签（标签的某种状态）设置样式，比如说我们给html中一个标签元素的鼠标滑过的状态来设置字体颜色：-->
<!--a:hover{color:red;}-->
<!--上面一行代码就是为 a 标签鼠标滑过的状态设置字体颜色变红。这样就会使第一段文字内容中的“胆小如鼠”文字加入鼠标滑过字体颜色变为红色特效。-->
<!--关于伪选择符：-->
<!--关于伪类选择符，到目前为止，可以兼容所有浏鉴器的“伪类选择符”就是 a 标签上使用 :hover 了（其实伪类选择符还有很多，尤其是 css3 中，但是因为不能兼容所有浏览器，本教程只是讲了这一种最常用的）。其实 :hover 可以放在任意的标签上，比如说 p:hover，但是它们的兼容性也是很不好的，所以现在比较常用的还是 a:hover 的组合。-->

<!--分组选择符-->
<!--当你想为html中多个标签元素设置同一个样式时，可以使用分组选择符（，），如下代码为右侧代码编辑器中的h1、span标签同时设置字体颜色为红色：-->
<!--h1,span{color:red;}-->
<!--它相当于下面两行代码：-->
<!--h1{color:red;}-->
<!--span{color:red;}-->